X=imread('wed2.jpg');
Xoriginal=X(1:600,1:600,:);
f1=figure;
set(f, 'name', 'Original 600x600','numbertitle','off')
imagesc(Xoriginal);
axis square;
r=X(:,:,1);g=X(:,:,2);b=X(:,:,3);
for i=1:75
for j=1:75
xr=r((i-1)*8+1:(i-1)*8+8,(j-1)*8+1:(j-1)*8+8);
xg=g((i-1)*8+1:(i-1)*8+8,(j-1)*8+1:(j-1)*8+8);
xb=b((i-1)*8+1:(i-1)*8+8,(j-1)*8+1:(j-1)*8+8);
xrd=double(xr);
xgd=double(xg);
xbd=double(xb);
xrc=xrd-128;
xgc=xgd-128;
xbc=xbd-128;
Yr=dct(dct(xrc')');
Yg=dct(dct(xgc')');
Yb=dct(dct(xbc')');
p=1;
Q=p*8./hilb(8);
Yrq=round(Yr./Q);
Ygq=round(Yg./Q);
Ybq=round(Yb./Q);
Yrdq=Yrq.*Q;
Ygdq=Ygq.*Q;
Ybdq=Ybq.*Q;
Xrdq=idct2(Yrdq);
Xgdq=idct2(Ygdq);
Xbdq=idct2(Ybdq);
Xre=Xrdq+128;
Xge=Xgdq+128;
Xbe=Xbdq+128;
Xout((i-1)*8+1:(i-1)*8+8,(j-1)*8+1:(j-1)*8+8, 1)=uint8(Xre);
Xout((i-1)*8+1:(i-1)*8+8,(j-1)*8+1:(j-1)*8+8, 2)=uint8(Xge);
Xout((i-1)*8+1:(i-1)*8+8,(j-1)*8+1:(j-1)*8+8, 3)=uint8(Xbe);
end
end
f2=figure;
set(f2,'name', 'After, p=1','numbertitle','off');
imagesc(Xout);
axis square;
f3=figure;
set(f3,'name', 'Comparison with p=1','numbertitle','off');
h = imshowpair(Xoriginal,Xout,'diff');
axis square;